package conf

import (
	"fmt"
	"sync"
)

var (
	ConfigLock sync.RWMutex //读写锁
	MapDraw = make(map[int]ConfigDraw) 	//抽卡 	// C_抽卡.xlsx 
	MapDrawPool = make(map[int]ConfigDrawPool) 	//抽卡奖池 	// C_抽卡.xlsx 
	MapDrop = make(map[int]ConfigDrop) 	//掉落 	// D_掉落.xlsx 
	MapEquip = make(map[int]ConfigEquip) 	//装备 	// Z_装备.xlsx 
	MapExp = make(map[int]ConfigExp) 	//经验 	// T_通用.xlsx 
	MapForge = make(map[int]ConfigForge) 	//铸造 	// T_通用.xlsx 
	MapGlobal = make(map[int]ConfigGlobal) 	//E全局常数 	// Q_全局常数.xlsx 
	MapHero = make(map[int]ConfigHero) 	//英雄 	// Y_英雄.xlsx 
	MapItem = make(map[int]ConfigItem) 	//物品 	// D_道具.xlsx 
	MapLanguage = make(map[string]ConfigLanguage) 	//文本 	// B_本地化配置表.xlsx 
	MapMailText = make(map[int]ConfigMailText) 	//E邮件文本 	// B_Lang邮件.xlsx 
	MapNameBad = make(map[int]ConfigNameBad) 	//屏蔽字 	// B_Lang姓名表.xlsx 
	MapNameFemale = make(map[int]ConfigNameFemale) 	//女名 	// B_Lang姓名表.xlsx 
	MapNameMale = make(map[int]ConfigNameMale) 	//男名 	// B_Lang姓名表.xlsx 
	MapNameSur = make(map[int]ConfigNameSur) 	//姓 	// B_Lang姓名表.xlsx 
	MapProtocolResult = make(map[int]ConfigProtocolResult) 	//E错误码 	// B_Lang返回码.xlsx 
	MapServer = make(map[int]ConfigServer) 	//游戏服务器列表 	// F_服务器配置.xlsx 
	MapTest = make(map[int]ConfigTest) 	//测试公共类 	// Z_测试类.xlsx 
)

func InitMapAll() bool {
	fmt.Println("读取配置开始......")

	ConfigLock.Lock()
	defer ConfigLock.Unlock()

	if err := ReadJson("ConfigDraw", &MapDraw); err != nil {
		fmt.Println("Read ConfigDraw 抽卡  C_抽卡.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigDrawPool", &MapDrawPool); err != nil {
		fmt.Println("Read ConfigDrawPool 抽卡奖池  C_抽卡.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigDrop", &MapDrop); err != nil {
		fmt.Println("Read ConfigDrop 掉落  D_掉落.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigEquip", &MapEquip); err != nil {
		fmt.Println("Read ConfigEquip 装备  Z_装备.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigExp", &MapExp); err != nil {
		fmt.Println("Read ConfigExp 经验  T_通用.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigForge", &MapForge); err != nil {
		fmt.Println("Read ConfigForge 铸造  T_通用.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigGlobal", &MapGlobal); err != nil {
		fmt.Println("Read ConfigGlobal E全局常数  Q_全局常数.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigHero", &MapHero); err != nil {
		fmt.Println("Read ConfigHero 英雄  Y_英雄.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigItem", &MapItem); err != nil {
		fmt.Println("Read ConfigItem 物品  D_道具.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigLanguage", &MapLanguage); err != nil {
		fmt.Println("Read ConfigLanguage 文本  B_本地化配置表.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigMailText", &MapMailText); err != nil {
		fmt.Println("Read ConfigMailText E邮件文本  B_Lang邮件.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigNameBad", &MapNameBad); err != nil {
		fmt.Println("Read ConfigNameBad 屏蔽字  B_Lang姓名表.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigNameFemale", &MapNameFemale); err != nil {
		fmt.Println("Read ConfigNameFemale 女名  B_Lang姓名表.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigNameMale", &MapNameMale); err != nil {
		fmt.Println("Read ConfigNameMale 男名  B_Lang姓名表.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigNameSur", &MapNameSur); err != nil {
		fmt.Println("Read ConfigNameSur 姓  B_Lang姓名表.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigProtocolResult", &MapProtocolResult); err != nil {
		fmt.Println("Read ConfigProtocolResult E错误码  B_Lang返回码.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigServer", &MapServer); err != nil {
		fmt.Println("Read ConfigServer 游戏服务器列表  F_服务器配置.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigTest", &MapTest); err != nil {
		fmt.Println("Read ConfigTest 测试公共类  Z_测试类.xlsx  err", err)
		return false
	}

	fmt.Println("t读取配置结束......")
	return true
}
